// // cryto-js 模块base64是编码解码，不是加密解密




// // 在package.js中   修改成"type": "module",
// // 自定义的模块，导入时from相对路径
// // npm安装的外部模块，导入时直接from模块名






// // 导入jsencrypt用于非对称加密（公钥加密，私钥解密）
// // 在package.js中   修改成"type": "commonjs",
// // windows是浏览器bom对象，nodejs没有window，所有要导入jsdom模块








// // -------------------------自定义模块导入-------------------------------------------------
// // 自定义的模块，导入时from相对路径
// import { total } from "../Nodejs/mmsd.js";
// import { mmsdxhz } from "../Nodejs/mmsd.js"
// console.log(total(1, 2));
// console.log(mmsdxhz());



// // -------------------------npm外部下载的模块导入-------------------------------------------------
// // -------------------------Base64编码解码-------------------------------------------------
// // npm安装的外部模块，导入时直接from模块名
// import CryptoJS from "crypto-js"
// // 普通文本===》Base64
// let msg = "black manba"
// let msg_utf8 = CryptoJS.enc.Utf8.parse(msg)       //  先编码成utf8
// let msg_b64 = CryptoJS.enc.Base64.stringify(msg_utf8)     //  再编码成Base64
// console.log(msg_b64);       //  YmxhY2sgbWFuYmE=

// // Base64===》普通内容
// let msg_b642 = CryptoJS.enc.Base64.parse(msg_b64)       //  先解码成Base64
// let msg_utf82 = CryptoJS.enc.Utf8.stringify(msg_b642)     //  再编码成utf8
// console.log(msg_utf82);       //  YmxhY2sgbWFuYmE=








// // -------------------------AES加密解密-------------------------------------------------
// // 无偏移量
// import CryptoJS from "crypto-js"
// let msg = "black manba"        //  明文
// let key = "1122334455667788"      //  密钥
// let msg_encrypt = CryptoJS.AES.encrypt(msg, key).toString()     //  加密
// console.log(msg_encrypt);       //  U2FsdGVkX187cuw95U7eYY9EcnQKt/xsJ8Go1b6TArU=

// let msg_decrypt = CryptoJS.AES.decrypt(msg_encrypt, key).toString(CryptoJS.enc.Utf8)    //  解密
// console.log(msg_decrypt);       //  black manba




// // 有偏移量
// import CryptoJS from "crypto-js"
// let msg = "black manba"        //  明文
// let key = "1122334455667788"      //  密钥
// let iv = "1122334455667788"       //  偏移量

// let key_hash = CryptoJS.enc.Utf8.parse(key)   //  编码成utf8
// let iv_hash = CryptoJS.enc.Utf8.parse(iv)   //  编码成utf8


// let msg_encrypt = CryptoJS.AES.encrypt(msg, key_hash, {
//     iv: iv_hash,        //  偏移量
//     mode: CryptoJS.mode.CBC,        //  使用CBC模式
//     padding: CryptoJS.pad.Pkcs7      //  使用PKcs7填充
// }).toString()
// console.log(msg_encrypt);       //  9nfgp0JhT84l7nb5cfZknA==


// let msg_decrypt = CryptoJS.AES.decrypt(msg_encrypt, key_hash, {
//     iv: iv_hash,        //  偏移量
//     mode: CryptoJS.mode.CBC,        //  使用CBC模式
//     padding: CryptoJS.pad.Pkcs7      //  使用PKcs7填充
// }).toString(CryptoJS.enc.Utf8)
// console.log(msg_decrypt);       //  black manba







// // -------------------------Des加密解密-------------------------------------------------
// // 无偏移量
// import CryptoJS from "crypto-js"
// let msg = "black manba"        //  明文
// let key = "1122334455667788"      //  密钥
// let msg_encrypt = CryptoJS.DES.encrypt(msg, key).toString()     //  加密
// console.log(msg_encrypt);       //  U2FsdGVkX1/60jC8WBRtbAlbwcKXy5QpyjAye5e90Ac=

// let msg_decrypt = CryptoJS.DES.decrypt(msg_encrypt, key).toString(CryptoJS.enc.Utf8)    //  解密
// console.log(msg_decrypt);       //  black manba



// // 有偏移量
// import CryptoJS from "crypto-js"
// let msg = "black manba"        //  明文
// let key = "1122334455667788"      //  密钥
// let iv = "1122334455667788"       //  偏移量

// let key_hash = CryptoJS.enc.Utf8.parse(key)   //  编码成utf8
// let iv_hash = CryptoJS.enc.Utf8.parse(iv)   //  编码成utf8


// let msg_encrypt = CryptoJS.DES.encrypt(msg, key_hash, {
//     iv: iv_hash,        //  偏移量
//     mode: CryptoJS.mode.CBC,        //  使用CBC模式
//     padding: CryptoJS.pad.Pkcs7      //  使用PKcs7填充
// }).toString()
// console.log(msg_encrypt);       //  T4dfsNhhYXZM6QNMIhUiaw==

// let msg_decrypt = CryptoJS.DES.decrypt(msg_encrypt, key_hash, {
//     iv: iv_hash,        //  偏移量
//     mode: CryptoJS.mode.CBC,        //  使用CBC模式
//     padding: CryptoJS.pad.Pkcs7      //  使用PKcs7填充
// }).toString(CryptoJS.enc.Utf8)
// console.log(msg_decrypt);       //  black manba







// // -------------------------MD5加密成哈希-------------------------------------------------
// // 哈希不能解密
// import CryptoJS from "crypto-js"
// let msg = "black manba"        //  明文
// let msg_md5 = CryptoJS.MD5(msg)
// let msg_hash = msg_md5.toString(CryptoJS.enc.Hex)
// console.log(msg_hash);      //  a6650e2cc1b7390e697da253a2856389






// // -------------------------SHA256加密成哈希-------------------------------------------------
// // 哈希不能解密
// import CryptoJS from "crypto-js"
// let msg = "black manba"        //  明文
// let msg_sha256 = CryptoJS.SHA256(msg)
// let msg_hash = msg_sha256.toString(CryptoJS.enc.Hex)
// console.log(msg_hash);      //  d830669c24222c5769a1d05cfa2663c9cf363e5bd719e2060aaeca56fddf2068












// // -------------------------jsencrypt公钥加密私钥解密-------------------------------------------------
// // 哈希不能解密
// // 结合html文件   jsencrypt公私钥

// import { generateKeyPairSync } from 'crypto';

// // 生成RSA密钥对
// const { publicKey, privateKey } = generateKeyPairSync('rsa', {
//     modulusLength: 2048,       // 密钥长度
//     publicKeyEncoding: {
//         type: 'spki',       // 公钥格式
//         format: 'pem'        // PEM格式
//     },
//     privateKeyEncoding: {
//         type: 'pkcs8',       // 私钥格式
//         format: 'pem'        // PEM格式
//     },
// });

// console.log('公钥:', publicKey);
// console.log('私钥:', privateKey);



